﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace proyectoENS
{
    public partial class frmCalificacionesExamenes : Form
    {
        public Alumnos alumno { get; set; }
        public Materias materia { get; set; }
        public Examenes examen { get; set; }
        List<Materias> listaMaterias;
        List<Examenes> listaExamenes;
        private static frmCalificacionesExamenes Instancia;
        public static frmCalificacionesExamenes onlyInstancia
        {
            get
            {
                if (Instancia == null || Instancia.IsDisposed)
                    Instancia = new frmCalificacionesExamenes();
                return Instancia;
            }
        }
        private frmCalificacionesExamenes()
        {
            InitializeComponent();
        }

        private void btnBuscarAlumno_Click(object sender, EventArgs e)
        {
            frmBuscarAlumnos frm = new frmBuscarAlumnos();
            frm.ShowDialog();
            {
                alumno = frm.selected;
            }
            if (frm.selected != null)
            {
                lblAlumno.Text = alumno.Apellidos + ", " + alumno.nombres;
                cargarCbxMaterias();
            }
        }
        private void cargarCbxMaterias()
        {
            listaMaterias = new List<Materias>();
            listaExamenes = new List<Examenes>();
            if (alumno != null)
            {
                listaExamenes = DALExamenes.getExamenesPendientes((int)alumno.id);
                if (listaExamenes.Count > 0)
                {
                    foreach (Examenes item in listaExamenes)
                    {
                        listaMaterias.Add(DALMaterias.getMateriaById((int)item.idMateria));
                    }
                    cbxMaterias.DataSource = listaMaterias;
                }
                else
                    MessageBox.Show("El alumno seleccionado no esta inscripto en ningun examen");
                
            }
        }

        private void cbxMaterias_SelectedIndexChanged(object sender, EventArgs e)
        {
            examen = (from ex in listaExamenes
                      where ex.idMateria == (((Materias)cbxMaterias.SelectedItem).idMateria)
                      select ex).FirstOrDefault<Examenes>();

            Profesores tmp = DALProfesores.getProfesorById((int)examen.idProfesor);
            lblProfesor.Text = tmp.apellidos.ToString() + ", " + tmp.nombres.ToString();
            lblInstancia.Text = examen.instancia.ToString();
            FechaExamen.Value = (DateTime)examen.fechaInscripcion;
            fechaInscripcion.Value = (DateTime)examen.fechaInscripcion;
        }

        private void btnAceptar_Click(object sender, EventArgs e)
        {
            if (examen != null)
            {
                if (int.Parse(txtCalificacion.Text.ToString()) > 10 || functionesGlobales.isNumeric(txtCalificacion.Text) == false)
                    errorProvider1.SetError(txtCalificacion, "La calificacion es incorrecta");
                examen.calificacion = int.Parse(txtCalificacion.Text.ToString());
                DALExamenes.actualizarExamen(examen);
                MessageBox.Show("Operacion Exitosa!");
            }
            else
            {
                MessageBox.Show("Datos incorrectos");
            }
        }

        private void frmCalificacionesExamenes_Load(object sender, EventArgs e)
        {

        }

      
    }
}
